import {get, post} from "../utils/request"



export interface userClockRecord {
  date: string
  isClock: boolean
  isAfterToday: boolean
  isToday: boolean
  weekday: string
}

export interface UserWelfare {
  /**
   * 用户权益
   */
  userWelfare: welfare
  /**
   * 用户名
   */
  username: string

  /**
   * 用户头像
   */
  avatar: string
  /**
   * 有效截止时间
   */
  activeTime: string

  /**
   * 会员等级
   */
  memberLevel: string

  /**
   * 是否是会员
   */
  isMember: boolean

  /**
   * 是否过期
   */
  isExpired: boolean
}

// 分页响应接口
export interface PageResponse<T> {
  pageNo: number
  pageSize: number
  totalCount: number
  totalPage: number
  data: T[]
}

// 分页参数接口
export interface PageParams {
  page: number
  limit: number
  order?: 'ASC' | 'DESC'
  field?: string
}


// 定义一个枚举类，用于表示删除状态
enum DelEnum {
  UN_DEL = 0, // 未删除
  DEL = 1     // 已删除
}

// 定义用户权益信息接口
interface CachedFeatures {
  // 每日拉币数量
  dailyCoins: number;

  // 拉币总余额
  totalCoins: number;

  // 功能权限集合
  features: Features;
}

// 定义功能权限详情接口
interface Features {
  // 聊天功能权限
  chat: boolean;

  // 绘画功能权限
  drawing: boolean;

  // 视频功能权限
  video: boolean;
}

// 定义用户套餐接口
interface welfare {
  // 用户-套餐唯一标识
  id?: number;

  // 用户标识
  userId: number;

  // 当前活跃订阅ID列表
  activeSubscriptionIds: number[];

  // 订阅历史ID列表
  subscriptionHistoryIds: number[];

  // 缓存权益信息
  cachedFeatures: CachedFeatures;

  // 创建时间
  createTime: number;

  // 更新时间
  updateTime: number;

  // 是否删除
  del: DelEnum;
}

// 定义积分概览接口
export interface PointsOverview {
  currentPoints: number; // 当前积分
  totalPoints: number;   // 累计获得
  usedPoints: number;    // 已使用积分
}

// 定义积分明细接口
export interface PointsDetail {
  date: string; // 日期
  type: string; // 类型
  description: string; // 说明
  pointsChange: number; // 积分变动
  balance: number; // 积分余额
}

// 定义积分概览和积分明细的接口
export interface PointsData {
  overview: PointsOverview;
  details: PointsDetail[];
}

export interface ConsumptionRequest {
  keyword: string;
  startTime: bigint;
  endTime: bigint;
  page?: PageParams;
}

export interface Product {
  id: number;
  code: string;
  name: string;
  category: number;
  tier: number;
  originalPrice: number;
  currentPrice: number;
  currency: string;
  discount: number;
  dailyCoins: number;
  totalCoins: number | null;
  duration: number;
  tag: string | null;
  features: string[];
  description: string;
  bonuses: any | null; // 可根据实际奖励结构替换为具体类型
  isFeatured: boolean;
  isActive: boolean;
  createTime: number;
  updateTime: number;
  del: number;
  sales: number;
}
// 用户签到
export const userClock = () => {
  return post('/vip-api/clock/userClock')
}

// 获取用户签到记录
export const getUserClockRecords = () => {
  return get<userClockRecord[]>('/vip-api/clock/monthClockRecords')
}

// 获取用户权益
export const getUserWelfare = () => {
  return get<UserWelfare>('/vip-api/welfare/getUserWelfareInfo')
}

export const getUserPointsInfo = () => {
  return get<PointsOverview>('/vip-api/welfare/getUserPointsInfo')
}

// 积分管理接口
export const getUserPointsDetail = (param: ConsumptionRequest) => {
  return post<PageResponse>('/vip-api/points/getPointsConsumption', param);
}

// 获取商品列表
export const getCommodityList = () => {
  return get('/vip-api/commodity/list')
}

// 获取所有有效套餐
export const getAllActPackage = () => {
  return get('/vip-api/vipPackage/getAllActPackages')
}

// 根据月份获取积分消费数据
export const getConsumptionByMonth = () => {
  return get('/vip-api/points/getMonthConsumption')
}
